package com.ittao.taoaicodemother.mapper;

import com.mybatisflex.core.BaseMapper;
import com.ittao.taoaicodemother.model.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 用户 映射层。
 *
 * @author <a href="https://gitee.com/it-heima-ht">程序员 Tao</a>
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 绕过逻辑删除机制查询用户（用于注册时检查账号是否存在）
     *
     * @param userAccount 用户账号
     * @return 用户信息（包括已删除的）
     */
    @Select("SELECT * FROM user WHERE userAccount = #{userAccount}")
    User selectIgnoreLogicDelete(@Param("userAccount") String userAccount);

    /**
     * 绕过逻辑删除机制更新用户信息（用于恢复已删除账号）
     *
     * @param user 用户信息
     * @return 更新影响行数
     */
    @Update("UPDATE user SET userPassword = #{userPassword}, userName = #{userName}, " +
            "userRole = #{userRole}, isDelete = #{isDelete}, updateTime = NOW() WHERE id = #{id}")
    int updateIgnoreLogicDelete(User user);
}
